export default function filterRoutesByPermission(userRoutes, userPermissions) {
  // 递归过滤路由
  return userRoutes.filter(route => {
    // 1. 处理子集
    if (route.children && route.children.length > 0) {
      // 递归过滤子路由，并更新children
      route.children = filterRoutesByPermission(route.children, userPermissions)
      // 如果子路由过滤后为空，可能需要排除当前路由（根据业务需求调整）
      // 这里暂时保留，即使子路由为空也不删除父路由
    }

    // 2. 判断当前路由是否有权限
    // 无需权限的路由直接保留
    if (!route.meta?.permissions || route.meta.permissions.length === 0) {
      return true
    }

    // 需要权限的路由，检查是否有匹配的权限
    return userPermissions.some(auth => route.meta.permissions.includes(auth))
  })
}
